/*
 * @Author: hmhvictory 1400628624@qq.com
 * @Date: 2025-07-24 16:23:00
 * @LastEditors: hmhvictory 1400628624@qq.com
 * @LastEditTime: 2025-07-24 16:23:11
 * @FilePath: \实训笔记\day09\YangHuiTriangle.java
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
package day09;

public class YangHuiTriangle {
    public static void printYangHuiTriangle(int n) {
        // 初始化一个一维数组，用于存储当前行的数据
        int[] row = new int[n];

        for (int i = 0; i < n; i++) {
            // 从后往前更新当前行的数据
            for (int j = i; j > 0; j--) {
                if (j == i) {
                    // 每一行的最后一个元素始终为 1
                    row[j] = 1;
                } else {
                    // 中间元素的值为上一行相邻两个元素之和
                    row[j] = row[j] + row[j - 1];
                }
            }
            // 每一行的第一个元素始终为 1
            row[0] = 1;

            // 打印当前行
            for (int j = 0; j <= i; j++) {
                System.out.print(row[j] + " ");
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        // 打印一个 10 行的杨辉三角
        printYangHuiTriangle(10);
    }
}
